home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / answers / sci / nonlinear-programming-faq < prev    next >
Text File  |  1994-04-02  |  23KB  |  447 lines

  1. Newsgroups: news.answers,sci.answers,sci.op-research
  2. Path: bloom-beacon.mit.edu!hookup!swrinde!ihnp4.ucsd.edu!network.ucsd.edu!sdcrsi!equalizer!timbuk.cray.com!walter.cray.com!jwg
  3. From: jwg@cray.com (John Gregory)
  4. Subject: Nonlinear Programming FAQ
  5. Message-ID: <nonlinear-programming-faq-1-765189173@cray.com>
  6. Followup-To: sci.op-research
  7. Summary: A List of Frequently Asked Questions about Nonlinear Programming
  8. Originator: jwg@ceres
  9. Keywords: FAQ, NLP, Nonlinear Programming
  10. Lines: 428
  11. Nntp-Posting-Host: ceres.cray.com
  12. Reply-To: jwg@cray.com (John Gregory)
  13. Organization: Cray Research, Inc., Eagan MN USA
  14. Date: 1 Apr 94 02:33:57 CST
  15. Approved: news-answers-request@MIT.Edu
  16. Expires: 05/03/94
  17. Xref: bloom-beacon.mit.edu news.answers:17241 sci.answers:1041 sci.op-research:941
  18.  
  19. Posted-By: auto-faq 2.4
  20. Archive-name: nonlinear-programming-faq
  21. Last-modified: April 1, 1994
  22.  
  23.         Nonlinear Programming - Frequently Asked Questions List
  24.                       (nonlinear-programming-faq)
  25.            Posted monthly to Usenet newsgroup sci.op-research
  26.                  Most recent update: April 1, 1994
  27.  
  28. -----------------------------------------------------------------------
  29.  
  30. "Happiness is having a scratch for every itch."  -- Ogden Nash
  31.  
  32. Q0.  "What's in this FAQ?"
  33.  
  34. A:  Table of Contents
  35.    Q1.  "What is Nonlinear Programming?"
  36.    Q2.  "What software is there for nonlinear optimization?"
  37.    Q3.  "I wrote an optimization code.  Where are some test models?"
  38.    Q4.  "What references are there in this field?"
  39.    Q5.  "How do I access the Netlib server?
  40.    Q6.  "Who maintains this FAQ list?"
  41.  
  42. See also the related FAQ on Linear Programming (LP).
  43.  
  44. -----------------------------------------------------------------------
  45.  
  46. Q1.  "What is Nonlinear Programming?"
  47.  
  48. A:  A Nonlinear Program (NLP) is a problem that can be put into the
  49. form
  50.  
  51.     minimize   F(x)
  52.     subject to g (x)  = 0     for i=1,...,m1       where m1 >= 0
  53.                 i
  54.                h (x) >= 0    for j=m1+1,...,m      where m >= m1
  55.                 j
  56.  
  57. That is, there is one scalar-valued function F, of several variables (x
  58. here is a vector), that we seek to minimize subject (perhaps) to one or
  59. more other such functions that serve to limit or define the values of
  60. these variables.  F is called the "objective function", while the
  61. various other functions are called the "constraints".  (If maximization
  62. is sought, it is trivial to do so, by multiplying F by -1.)
  63.  
  64. Because NLP is a difficult field, researchers have identified special
  65. cases for study.  A particularly well studied case is the one where
  66. all the constraints g and h are linear.  The name for such a problem,
  67. unsurprisingly, is "linearly constrained optimization".  If, as well,
  68. the objective function is quadratic at most, this problem is called
  69. Quadratic Programming (QP).  A further special case of great importance
  70. is where the objective function is entirely linear; this is called
  71. Linear Programming and is discussed in a separate FAQ list.  Another
  72. important special case, called unconstrained optimization, is where
  73. there are no constraints at all.
  74.  
  75. One of the greatest challenges in NLP is that some problems exhibit
  76. "local optima"; that is, spurious solutions that merely satisfy the
  77. requirements on the derivatives of the functions.  Think of a near-
  78. sighted mountain climber in a terrain with multiple peaks, some peaks
  79. higher than others, and you'll see the difficulty posed for an
  80. algorithm that tries to move from point to point only by climbing
  81. uphill.  Algorithms that propose to overcome this difficulty are termed
  82. "Global Optimization".
  83.  
  84. The word "Programming" is used here in the sense of "planning"; the
  85. necessary relationship to computer programming was incidental to the
  86. choice of name.  Hence the phrase "NLP program" to refer to a piece of
  87. software is not a redundancy, although I tend to use the term "code"
  88. instead of "program" to avoid the possible ambiguity.
  89.  
  90. -----------------------------------------------------------------------
  91.  
  92. Q2.  "What software is there for nonlinear optimization?"
  93.  
  94. A: It's unrealistic to expect to find one general NLP code that's going
  95. to work for every kind of nonlinear model.  Instead, you should try to
  96. find a code that fits the problem you are solving.  If your problem
  97. doesn't fit in any category except "general", or if you insist on a
  98. globally optimal solution (except when there no chance of encountering
  99. multiple local optima), you should be prepared to have to use a method
  100. that boils down to exhaustive search, i.e., you have an intractable
  101. problem.
  102.  
  103. I would be extremely interested in hearing of people's experiences with
  104. the codes they learn about from reading this FAQ.  (Note, I'm looking
  105. for more-or-less independent confirmation or denial of the practicality
  106. of codes.)
  107.  
  108. Several of the commercial LP codes referenced in the LP FAQ have
  109. specialized routines, particularly QP.  The ones that I know of that
  110. have some form of QP are: LINDO, KORBX, LOQO, MPS-III, OSL, and
  111. PC-PROG.  Many general nonlinear problems can be solved (or at least
  112. confronted) by application of a sequence of LP or QP approximations.
  113.  
  114. There are ACM TOMS routines for QP, #559 and #587, available from the
  115. netlib server, in directory /netlib/toms.
  116.  
  117. There is a directory, /netlib/opt, on the netlib server containing a
  118. collection of optimization routines.  The last time I checked, I saw
  119. - "praxis" (unconstrained optimization, without requiring derivatives)
  120. - "tn" (Newton method for unconstrained or simple-bound optimization)
  121. - "ve08" (optimization of unconstrained separable function).
  122. - "simann" (unconstrained optimization using Simulated Annealing)
  123. - "subplex"(unconstrained optimization, general multivariate functions)
  124. - "donlp" (differentiable nonlinear optimization, dense linear algebra)
  125.  
  126. For nonlinear optimization problems with both continuous and binary
  127. variables (MINLP), there is a code called DICOPT++, available
  128. commercially from GAMS Development Corp.  Contact gams@gams.com for
  129. more information.
  130.  
  131. For difficult problems like Global Optimization, methods like Genetic
  132. Algorithms and Simulated Annealing have been studied heavily.  I'm not
  133. well-versed in any of these topics, and I have been assured of
  134. contradictory things by different experts.  A particular point of
  135. controversy is whether there is a proof of optimality for practical
  136. variants of such algorithms for Global Optimization problems, and I
  137. take no particular stand on the issue (since for difficult problems
  138. such a proof may be of academic interest only).  Even moreso than
  139. usual, I say "let the user beware" when it comes to code.  There's a
  140. (compressed) Postscript file available by anonymous FTP, containing a
  141. forty-page introduction to the topic of GA, that one can obtain from
  142. beethoven.cs.colostate.edu in file pub/TechReports/1993/tr-103.ps.Z.
  143. The Usenet newsgroup on GA, comp.ai.genetic, has a FAQ on the topic,
  144. otherwise known as "The Hitch-Hiker's Guide to Evolutionary
  145. Computation".  That FAQ can be obtained by anonymous FTP at
  146. rtfm.mit.edu, in directory /pub/usenet/news.answers/ai-faq/genetic,
  147. in files named part* .  Genetic Algorithm code can be obtained from
  148. cs.ucsd.edu in /pub/GAucsd.  Simulated Annealing code for NLP and other
  149. problems is available at ftp.alumni.caltech.edu, /pub/ingber - contact
  150. Lester Ingber (ingber@alumni.caltech.edu) for more info.  I am unaware
  151. of the existence of any other widely available and "ready-to-use"
  152. software for finding answers to Global Optimization problems.  For
  153. other ideas on Global Optimization, you may want to consult one of the
  154. books given in the section on references, such as [Nemhauser] or one of
  155. the ones with "Global" in its title.  There is also a Journal of Global
  156. Optimization, published by Kluwer.
  157.  
  158. Here is a summary of other NLP codes mentioned in newsgroups in the
  159. past few years, sorted alphabetically.  Perhaps someone will volunteer
  160. to organize these references more usefully.
  161.  
  162. - Amoeba - Numerical Recipes
  163. - Brent's Method - Numerical Recipes
  164. - CONMIN - Vanderplaats and Associates, Goleta CA
  165. - CONOPT - large-scale GRG code, by Arne Drud.  Available with GAMS
  166.   or AMPL (modeling languages) or standalone.
  167. - DFPMIN - Numerical Recipes  (Davidon-Fletcher-Powell)
  168. - Eureka - Borland Software (for IBM PC class of machines)
  169. - FSQP/CFSQP (Fortran/C) -  Contact Andre Tits, andre@eng.umd.edu.  
  170.   Free of charge to academic users.  Solves general nonlinear 
  171.   constrained problems, including constrained minimax problems.  CFSQP 
  172.   (C code) includes a scheme to efficently handle problems with many 
  173.   constraints (e.g., discretized semi-infinite problems).
  174. - GENOCOP - Solves linearly constrained problems via a Genetic
  175.   algorithm, available by FTP at unccsun.uncc.edu (152.15.10.88).
  176.   Author: Zbigniew Michalewicz, zbyszek@mosaic.uncc.edu.
  177. - GINO - LINDO Systems, Chicago, IL
  178. - GRG2 - Leon Lasdon, University of Texas, Austin TX
  179. - Harwell Library routine VF04.
  180. - Hooke and Jeeves algorithm - see reference below.  A version is
  181.   available from netlib, in /netlib/opt/hooke.c, and may be useful
  182.   because it handles nondifferentiable and/or discontinuous functions.
  183. - IMSL routine UMINF and UMIDH.
  184. - LANCELOT - large scale NLP. See the book by Conn et al. in the
  185.   references section.  For peaceful purposes only.
  186. - LSSOL - Stanford Business Software Inc.  (See MINOS)
  187.   This code does convex (positive semi-definite) QP.  Is the QP solver
  188.   used in current versions of NPSOL.
  189. - MATLAB Optimization Toolbox - The Mathworks, Inc. 508-653-1415.
  190.   Handles various nonlinear optimization problems.
  191.   Data sheet available in postscript format via anonymous FTP:
  192.   ftp.mathworks.com in /pub/product-info/optimization.ps .
  193.   Email address: info@mathworks.com .
  194. - MINOS - Stanford Business Software Inc., 415-962-8719.  Mailing
  195.   address: 2672 Bayshore Parkway, Suite 304, Mountain View, CA 94043.
  196.   This code is often used by researchers as a "benchmark" for others
  197.   to compare with.
  198. - MINPACK I and II - Contact Steve Wright, wright@mcs.anl.gov, or
  199.   check the netlib server.
  200. - NAG Library routine E04UCF (essentially the same as NPSOL).
  201. - NOVA - DOT Products, Houston TX
  202. - NPSOL - Stanford Business Software Inc.  (See MINOS)
  203. - QLD - Contact: Klaus.Schittkowski@uni-bayreuth.de.  Solves Quadratic
  204.   Programming and other nonlinear problems.
  205. - QPSOL - see LSSOL.
  206.  
  207. A book that became available in November 1993 is the "Optimization
  208. Software Guide," by Jorge More and Stephen Wright, from SIAM Books.
  209. Call 1-800-447-7426 to order ($24.50, less ten percent if you are a
  210. SIAM member).  It contains references to 75 available software
  211. packages, and goes into more detail than is possible in this FAQ.
  212.  
  213. -----------------------------------------------------------------------
  214.  
  215. Q3.  "I wrote an optimization code.  Where are some test models?"
  216.  
  217. A: There are various test sets for NLP.  Among those I've seen
  218. mentioned are:
  219.   - A. Corana et al, "Minimizing Multimodal Functions of Continuous
  220.     Variables with the Simulated Annealing Algorithm," ACM Transactions
  221.     on Mathematical Software, Vol. 13, No. 3, Sept 1987, pp. 262-280.
  222.     (Difficult unconstrained nonlinear models)
  223.   - C.A. Floudas and P.M. Pardalos, A Collection of Test Problems for
  224.     Constrained Global Optimization Algorithms, Springer-Verlag,
  225.     Lecture Notes in Computer Science 455 (1990).
  226.   - W.W. Hager, P.M. Pardalos, I.M. Roussos, and H.D. Sahinoglou,
  227.     Active Constraints, Indefinite Quadratic Programming, and Test
  228.     Problems, Journal of Optimization Theory and Applications Vol. 68,
  229.     No. 3 (1991), pp. 499-511.
  230.   - J. Hasselberg, P.M. Pardalos and G. Vairaktarakis, Test case
  231.     generators and computational results for the maximum clique
  232.     problem, Journal of Global Optimization 3 (1993), pp. 463-482.
  233.   - B. Khoury, P.M. Pardalos and D.-Z. Du, A test problem generator for
  234.     the steiner problem in graphs, ACM Transactions on Mathematical
  235.     Software, Vol. 19, No. 4 (1993), pp. 509-522.
  236.   - Y. Li and P.M. Pardalos, Generating quadratic assignment test
  237.     problems with known optimal permutations, Computational
  238.     Optimization and Applications Vol. 1, No. 2 (1992), pp.  163-184.
  239.   - P. Pardalos, "Generation of Large-Scale Quadratic Programs", ACM
  240.     Transactions on Mathematical Software, Vol. 13, No. 2, p. 133.
  241.   - P.M. Pardalos, Construction of test problems in quadratic bivalent
  242.     programming, ACM Transactions on Mathematical Software, Vol. 17,
  243.     No. 1 (1991), pp. 74-87.
  244.   - P.M. Pardalos, Generation of large-scale quadratic programs for use
  245.     as global optimization test problems,  ACM Transactions on
  246.     Mathematical Software, Vol. 13, No. 2 (1987), pp. 133-137.
  247.   - F. Schoen, "A Wide Class of Test Functions for Global
  248.     Optimization", J. of Global Optimization, 3, 133-137, 1993, with
  249.     C source code available for anonymous FTP at ghost.dsi.unimi.it,
  250.     directory ftp/pub/schoen.
  251.   - publications (referenced in another section of this list) by
  252.     Schittkowski; Hock & Schittkowski; Torn & Zilinskas.
  253. Some of the other publications listed in the references section also
  254. may contain problems that you could use to test a code.
  255.  
  256. A package called CUTE (Constrained and Unconstrained Testing
  257. Environment) is a set of Fortran subroutines, system tools and test
  258. problems in the area of nonlinear optimization and nonlinear equations.
  259. The package may be obtained via anonymous FTP at camelot.cc.rl.ac.uk
  260. (Internet 130.246.8.61), in the directory pub/cute, or at
  261. thales.math.fundp.ac.be (Internet 138.48.4.14) in directory cute.  A
  262. LaTex formatted manuscript is included in the distribution file.
  263. Download the README file first and follow the directions contained
  264. therein.  Questions should be directed toward any of the package's
  265. authors:
  266.   Ingrid Bongartz     bongart@watson.ibm.com
  267.   Andy Conn           arconn@watson.ibm.com
  268.   Nick Gould          gould@cerfacs.fr
  269.   Philippe Toint      pht@math.fundp.ac.be
  270.  
  271. John Beasley has posted information on his OR-Lib, which contains
  272. various optimization test problems.  Send e-mail to
  273. umtsk99@vaxa.cc.imperial.ac.uk to get started.  Or have a look in the
  274. Journal of the Operational Research Society, Volume 41, Number 11,
  275. Pages 1069-72.  The only nonlinear models in this collection at this
  276. writing are Quadratic Assignment problems.
  277.  
  278. The modeling language GAMS comes with about 150 test models, which you
  279. might be able to test your code with.  The models are in the public
  280. domain according to the vendor, although you need access to a GAMS
  281. system if you want to run them without modifying the files.
  282.  
  283. In the journal Mathematical Programming, Volume 61 (1993) Number 2,
  284. there is an article by Calamai et al. that discusses how to generate QP
  285. test models.  It gives what seems a very full bibliography of earlier
  286. articles on this topic.  The author offers at the end of the article to
  287. send a Fortran code that generates QP models, if you send email to
  288. phcalamai@dial.waterloo.edu.
  289.  
  290. The paper "An evaluation of the Sniffer Global Optimization Algorithm
  291. Using Standard Test Functions", Roger A.R. Butler and Edward E.
  292. Slaminka, J. Comp. Physics, 99, 28-32, (1992) mentions  the following
  293. reference containing 7 functions that were intended to thwart global
  294. minimization algorithms: "Towards Global Optimization 2", L.C.W. Dixon
  295. and G.P. Szego, North-Holland, 1978.
  296. [from Dean Schulze - schulze@asgard.lpl.arizona.edu]
  297.  
  298. -----------------------------------------------------------------------
  299.  
  300. Q4.  "What references are there in this field?"
  301.  
  302. A:  What follows here is an idiosyncratic list, a few books that I like
  303. or have been recommended on the net.  I have *not* reviewed them all.
  304.  
  305. General reference
  306. -  Nemhauser, Rinnooy Kan, & Todd, eds, Optimization, North-Holland,
  307.    1989.  (Very broad-reaching, with large bibliography.  Good
  308.    reference; it's the place I tend to look first.  Expensive, and
  309.    tough reading for beginners.)
  310.  
  311. Other publications (can someone help classify these more usefully?)
  312. -  Bazaraa & Shetty, Nonlinear Programming, Theory & Applications.
  313. -  Coleman & Li, Large Scale Numerical Optimization, SIAM Books.
  314. -  Conn, A.R., et al., "LANCELOT: A code for large-scale, constrained,
  315.    NLP", Springer series in computational mathematics, 1992.
  316. -  Dennis & Schnabel, Numerical Methods for Unconstrained Optimization
  317.    and Nonlinear Equations, Prentice Hall, 1983.
  318. -  Fiacco & McCormick, Sequential Unconstrained Minimization
  319.    Techniques, SIAM Books.  (An old standby, given new life by the
  320.    interior point LP methods.)
  321. -  Fletcher, R., Practical Methods of Optimization, Wiley, 1987.  (Good
  322.    reference for Quadratic Programming, among other things.)
  323. -  Floudas & Pardalos, Recent Advances in Global Optimization,
  324.    Princeton University Press, 1992.
  325. -  Gill, Murray & Wright, Practical Optimization, Academic Press, 1981.
  326.    (An instant NLP classic when it was published.)
  327. -  Himmelblau, Applied Nonlinear Programming, McGraw-Hill, 1972.
  328.    (Contains some famous test problems.)
  329. -  Hock & Schittkowski, Test Examples for Nonlinear Programming Codes,
  330.    Springer-Verlag, 1981.
  331. -  Hooke & Jeeves, "Direct Search Solution of Numerical and Statistical
  332.    Problems", Journal of the ACM, Vol.8 pp. 212-229, April 1961.
  333. -  Horst and Tuy, Global Optimization, Springer-Verlag, 1993.
  334. -  Kahaner, Moler & Nash, Numerical Methods and Software, Prentice-
  335.    Hall.
  336. -  Luenberger, Introduction to Linear and Nonlinear Programming,
  337.    Addison Wesley, 1984.  (Updated version of an old standby.)
  338. -  More, "Numerical Solution of Bound Constrained Problems", in
  339.    Computational Techniques & Applications, CTAC-87, Noye & Fletcher,
  340.    eds, North-Holland, 29-37,  1988.
  341. -  More & Toraldo, Algorithms for Bound Constrained Quadratic
  342.    Programming Problems, Numerische Mathematik 55, 377-400, 1989.
  343. -  More & Wright, "Optimization Software Guide", SIAM, 1993.
  344. -  Nocedal, J., summary of algorithms for unconstrained optimization
  345.    in "Acta Numerica 1992".
  346. -  Schittkowski, Nonlinear Programming Codes, Springer-Verlag, 1980.
  347. -  Schittkowski, More Test Examples for Nonlinear Programming Codes,
  348.    Lecture Notes in Economics and Math. Systems 282, Springer 1987.
  349. -  Torn & Zilinskas, Global Optimization, Springer-Verlag, 1989.
  350. -  Wright, M., "Interior methods for constrained optimization", Acta
  351.    Mathematica, Cambridge University Press, 1992.  (Survey article.)
  352.  
  353. Simulated Annealing & Genetic Algorithms
  354. -  Davis, L. (ed.), Genetic Algorithms and Simulated Annealing, Morgan
  355.    Kaufmann, 1989.
  356. -  De Jong, "Genetic algorithms are NOT function optimizers" in
  357.    Foundations of Genetic Algorithms: Proceedings 24-29 July 1992, D.
  358.    Whitley (ed.) Morgan Kaufman
  359. -  Goldberg, D., "Genetic Algorithms in Search, Optimization, and
  360.    Machine Learning", Addison-Wesley, 1989.
  361. -  Ingber "Very fast simulated re-annealing" Mathematical and Computer
  362.    Modeling, 12(8) 1989, 967-973
  363. -  Kirkpatrick, Gelatt & Vecchi, Optimization by Simulated Annealing,
  364.    Science, 220 (4598) 671-680, 1983.
  365. -  Michalewicz et al., article in volume 3(4) 1991 of the ORSA Journal
  366.    on Computing.
  367. -  Michalewicz, Z., "Genetic Algorithms + Data Structures = Evolution
  368.    Programs", Springer Verlag, 1992.
  369. -  Reeves, C.R., ed., Modern Heuristic Techniques for Combinatorial
  370.    Problems, Halsted Press (Wiley).  (Contains chapters on tabu search,
  371.    simulated annealing, genetic algorithms, neural nets, and Lagrangean
  372.    relaxation.)
  373.  
  374. -----------------------------------------------------------------------
  375.  
  376. Q5.  "How do I access the Netlib server?
  377.  
  378. A:  If you have FTP access, you can try "ftp netlib2.cs.utk.edu", using
  379. "anonymous" as the Name, and your email address as the Password.  Do a
  380. "cd <dir>" where <dir> is whatever directory was mentioned, and look
  381. around, then do a "get <filename>" on anything that seems interesting.
  382. There often will be a "README" file, which you would want to look at
  383. first.  Another FTP site is "netlib.att.com", although you will first
  384. need to do "cd netlib" before you can cd to the <dir> you are
  385. interested in.  Alternatively, you can reach an e-mail server via
  386. "netlib@ornl.gov", to which you can send a message saying "send index
  387. from <dir>"; follow the instructions you receive.
  388.  
  389. -----------------------------------------------------------------------
  390.  
  391. Q6.  "Who maintains this FAQ list?"
  392.  
  393. A:  John W. Gregory
  394.     Applications Department
  395.     Cray Research, Inc.
  396.     Eagan, MN 55121   USA
  397.     jwg@cray.com
  398.     612-683-3673
  399.  
  400. This article is Copyright 1994 by John W. Gregory.  It may be freely
  401. redistributed in its entirety provided that this copyright notice is
  402. not removed.  It may not be sold for profit or incorporated in
  403. commercial documents without the written permission of the copyright
  404. holder.  Permission is expressly granted for this document to be made
  405. available for file transfer from installations offering unrestricted
  406. anonymous file transfer on the Internet.
  407.  
  408. The material in this document does not reflect any official position
  409. taken by Cray Research, Inc.  While all information in this article is
  410. believed to be correct at the time of writing, is it provided "as is"
  411. with no warranty implied.
  412.  
  413. I've tried to keep my own biases (primarily, toward the high end of
  414. computing) from dominating what I write here, and other viewpoints that
  415. I've missed are welcome.  Suggestions, corrections, topics you'd like
  416. to see covered, and additional material are solicited.
  417.  
  418. One disclaimer, which I alternately decide I should or shouldn't bother
  419. to state here, is that my wife works for one of the commercial LP firms
  420. mentioned in the LP FAQ.  I don't think you could guess which one,
  421. based on any of my comments in these two FAQs; besides, in my jobs at
  422. Cray and CDC I have had occasion to work with developers of many codes
  423. (and I worked on a few LP codes myself).  At any rate, my wife didn't
  424. write this FAQ, I did.  8v)
  425.  
  426. This FAQ list is also being posted to news.answers and sci.answers, and
  427. is archived in the periodic posting archive on rtfm.mit.edu
  428. [18.70.0.209], in the anonymous FTP directory /pub/usenet/sci.answers.
  429. The name under which FAQs are archived appears in the Archive-name
  430. line at the top of the article.  This particular FAQ is archived as
  431. "nonlinear-programming-faq".  You will find many other FAQs, covering a
  432. staggering variety of topics, in this hierarchy.  There's a mail
  433. server on that machine, so if you don't have FTP privileges, you can
  434. send an e-mail message to  mail-server@rtfm.mit.edu containing:
  435.     send usenet/sci.answers/nonlinear-programming-faq
  436. as the body of the message.  This FAQ is also cross-posted to
  437. news.answers.
  438.  
  439. If you wish to cite this FAQ formally (hey, someone actually asked),
  440. you may use:
  441.   Gregory, John W. <jwg@cray.com> (1994) "Nonlinear Programming FAQ",
  442.   Usenet sci.answers.  Available via anonymous FTP from rtfm.mit.edu
  443.   in /pub/usenet/sci.answers/nonlinear-programming-faq
  444.  
  445. -----------------------------------------------------------------------
  446. END nonlinear-programming-faq
  447.